package de.mnit.basis.swt.dialog;

import org.eclipse.swt.SWT;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Event;
import org.eclipse.swt.widgets.Listener;

import de.mnit.basis.swt.anw.A_MN_Dialog;
import de.mnit.basis.swt.anw.A_MN_Gruppe;
import de.mnit.basis.swt.element.S_SWT_Komponente;
import de.mnit.basis.swt.element.steuer.SWT_Knopf;
import de.mnit.basis.swt.element.steuer.SWT_Label;
import de.mnit.basis.swt.element.steuer.rollbar.gruppe.bild.deko.SWT_Fenster;
import de.mnit.basis.swt.element.steuer.rollbar.gruppe.bild.deko.S_Fenster;
import de.mnit.basis.swt.grafik.icon.direkt.ICON;
import de.mnit.basis.swt.layout.LayoutAbsolut;

/**
 * @author Michael Nitsche
 * 31.03.2009	Erstellt
 *
 * Knopf 1	(Links)		true
 * Knopf 2	(Rechts)	false
 * Abbruch				null
 */
public class Dialog_FrageFrei extends A_MN_Dialog<Dialog_FrageFrei, Boolean> {

	public static void main(String[] par)  { start(Dialog_FrageFrei.class, "Test:"); }


	private final SWT_Label       k_label   = new SWT_Label().s1_Umbrechen();
	private final SWT_Knopf       k_knopf1	= new SWT_Knopf();
	private final SWT_Knopf       k_knopf2  = new SWT_Knopf();
	private final String label;
	private Boolean ergebnis=null;


	public Dialog_FrageFrei(String label) {
		this.label=label;
	}


	public Dialog_FrageFrei sKnopf1(String text) {
		t.k_knopf1.sText(text);
		return this;
	}

	public Dialog_FrageFrei sKnopf2(String text) {
		t.k_knopf2.sText(text);
		return this;
	}

	public Dialog_FrageFrei sKnopf1(Object bild, String text) {
		t.k_knopf1.sBild(bild);
		t.k_knopf1.sText(text);
		return this;
	}

	public Dialog_FrageFrei sKnopf2(Object bild, String text) {
		t.k_knopf2.sBild(bild);
		t.k_knopf2.sText(text);
		return this;
	}


	protected S_SWT_Komponente<?, ? extends Composite> layout() {
		return LayoutAbsolut.neu()
			.sKomponente(t.k_label).sLORU(10, 10, 10, null).fertig()
			.sKomponente(t.k_knopf1).sLORU(10, t.k_label, null, 10).sOffsetOben(20).sBreite(100).fertig()
			.sKomponente(t.k_knopf2).sLORU(null, t.k_label, 10, 10).sOffsetOben(20).sBreite(100).fertig()
		;
	}

	protected void initStyle() {
		t.k_label.sText(this.label);
	}

	protected void initEvents() {
		t.k_knopf1.eAuswahl(new Listener(){
			public void handleEvent(Event event) {
				t.ergebnis=true;
				t.schliessen();
			}
		});
		t.k_knopf2.eAuswahl(new Listener(){
			public void handleEvent(Event event) {
				t.ergebnis=false;
				t.schliessen();
			}
		});
	}

	protected S_Fenster<?> fenster(A_MN_Gruppe<?> instanz) {
		SWT_Fenster f=SWT_Fenster.neu(instanz)
//			.s1_Modal()
			.s1_Style(SWT.APPLICATION_MODAL); //TODO Dies sollte als s1_Modal() direkt in MN_Fenster aufgenommen werden!!! Bzw bei Dialog Standard sein!
//			.s1_FesteGroesse()
//			.sZentriert()
		f.sBild(ICON._16.OBJ_FRAGEZEICHEN);
		f.sGroesse(350, 175);
		f.sTitel("Frage");
		return f;
	}

	protected Boolean gErgebnis2() {
		return this.ergebnis;
	}

}
